import thirdApi from "@/api/thirdApi";

let update = {
    data() {
        return {
            // 弹窗标题
            title: "",
            // 弹窗显示标志
            dialogVisible: false,
            // 弹窗类型（新增或编辑）
            dialogStatus: "add",
            formLabelWidth: "100px",
            // 保存按钮加载状态
            loading: false,
            // 额外数据
            meta: {}
        }
    },
    methods: {
        // 添加额外数据
        setMeta(data) {
            this.meta = Object.assign(this.meta, data);;
        },
        // 获取额外数据
        getMeta() {
            return this.meta;
        },
        // 清空数据
        clearData() {
            this.form = JSON.parse(JSON.stringify(this.initForm));
        },
        // 打开新增页面
        openSave(parentId, parentName) {
            // 获取重复提交 token
            this.getRepeatSubmitToken();

            // 清空数据，显示弹窗
            this.clearData();
            this.showDialog(true);
            this.showLoading(false);

            // 设置弹窗标题
            this.title = "添加" + this.dialogTitle;
            this.dialogStatus = "add";

            // 获取上级分类名称
            this.form.parentId = parentId;
            this.form.parentName = parentName ? parentName : "当前为一级分类";

            // 清除所有校验
            this.$nextTick(() => {
                this.$refs["ruleForm"].clearValidate();
            });
        },
        // 获取重复提交 token
        getRepeatSubmitToken() {
            thirdApi.common
                .repeatSubmitToken()
                .then((res) => {
                    this.setMeta({
                        repeatSubmitToken: res.data,
                    });
                })
                .catch((error) => { });
        },
        // 打开编辑页面
        openUpdate(row) {
            // 清空数据，显示弹窗
            this.clearData();
            this.showDialog(true);
            this.showLoading(false);

            // 设置弹窗标题
            this.title = "编辑" + this.dialogTitle;
            this.dialogStatus = "update";

            // 获取上级分类名称
            this.form.parentId = row.parentId;
            this.form.parentName = row.parentName ? row.parentName : "当前为一级分类";

            // 清除所有校验
            this.$nextTick(() => {
                this.$refs["ruleForm"].clearValidate();
            });

            // 查询数据详情
            this.remoteData(row.id);
        },
        // 是否显示弹窗
        showDialog(flag) {
            this.dialogVisible = flag;
        },
        // 设置保存按钮加载状态
        showLoading(flag) {
            this.loading = flag;
        },
    },
}

export default update;